home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / graphicgems4.lha / GemsIV / curve_isect / Bezier.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-02-06  |  822 b   |  31 lines

  1. #ifndef _BEZIER_INCLUDED_
  2. #include "vector.h"
  3. class Bezier {
  4.     public:
  5.     point *p0, *p1, *p2, *p3;
  6.     Bezier()
  7.     {
  8.     p0 = 0; p1 = 0; p2 = 0; p3 = 0;
  9.     }
  10.     Bezier( point *_p0, point *_p1, point *_p2, point *_p3 )
  11.     {
  12.     p0 = _p0; p1 = _p1; p2 = _p2; p3 = _p3;
  13.     }
  14.     Bezier * Split( );
  15.     void ParameterSplitLeft( double t, Bezier &result );
  16.  
  17.     // Intersect with another curve.  Return two 10-elt arrays. Array 0 
  18.     // contains fragments of self. Array 1 contains fragments of other curve.
  19.     // Fragments continue until one with nil pointers pointing at point data.
  20.     Bezier **Intersect( Bezier B ); 
  21.     ~Bezier()
  22.     {
  23.     if( --p0->refcount <= 0 ) delete p0;
  24.     if( --p1->refcount <= 0 ) delete p1;
  25.     if( --p2->refcount <= 0 ) delete p2;
  26.     if( --p3->refcount <= 0 ) delete p3;
  27.     }
  28.     };
  29. #define _BEZIER_INCLUDED_
  30. #endif
  31.